home *** CD-ROM | disk | FTP | other *** search
/ Macworld Expo - Develope…Central & Net Innovations / Developer Central and Net Innovators (MacWorld Expo) (January 1999).iso / Developer Central / Bowers Development / Demo AppMaker / Examples / Pascal OS8 / Everything / ModelessRadios.p < prev    next >
Encoding:
Text File  |  1998-10-30  |  5.4 KB  |  217 lines  |  [TEXT/CWIE]

  1. { ModelessRadios.p -- modeless dialog }
  2. { Created 10/30/98 1:06 PM by AppMaker }
  3.  
  4. Unit ModelessRadios;
  5. Interface
  6.  
  7. Uses
  8.     Types,
  9.     Quickdraw,
  10.     Controls,
  11.     Dialogs,
  12.     Events,
  13.     Lists,
  14.     Menus,
  15.     TextEdit,
  16.     DModelessRadiosData,
  17.     AMDialog;
  18.  
  19. Procedure ShowModelessRadios;
  20.  
  21. type
  22.     CModelessRadios        = object (AMDialog)
  23.  
  24.     {data members}
  25.         mData:        DModelessRadiosData;
  26.  
  27.     mRadioGroupGroupHandle:        ControlHandle;
  28.     mStandardHandle:        ControlHandle;
  29.     mGroupBoxHandle:        ControlHandle;
  30.     mGroupGroupHandle:        ControlHandle;
  31.     mGroupRadio1Handle:    ControlHandle;
  32.     mGroupRadio2Handle:    ControlHandle;
  33.     mGroupRadio3Handle:    ControlHandle;
  34.     mGraphicBoxHandle:        ControlHandle;
  35.     mGraphicGroupHandle:        ControlHandle;
  36.     mStopHandle:        ControlHandle;
  37.     mGoHandle:        ControlHandle;
  38.     mBevelBoxHandle:        ControlHandle;
  39.     mBevelGroupHandle:        ControlHandle;
  40.     mRadioButtonHandle:        ControlHandle;
  41.     mRadioButton2Handle:        ControlHandle;
  42.     mTextBoxHandle:        ControlHandle;
  43.     mTextGroupHandle:        ControlHandle;
  44.     mNameHandle:        ControlHandle;
  45.     mKindHandle:        ControlHandle;
  46.     mSizeHandle:        ControlHandle;
  47.  
  48.     {methods - public}
  49.         Procedure ConnectToData    (inData:    AMSignaler); Override;
  50.  
  51.     {methods - internal}
  52.         Procedure FinishMake; Override;
  53.         Procedure DoItem    (inItemHit:    SInt16); Override;
  54.         Procedure DataChanged    (inDataID:    longint); Override;
  55.  
  56.     end;
  57.  
  58. var
  59.     sModelessRadiosPtr:        DialogPtr;
  60.  
  61. {----------}
  62. Implementation
  63.  
  64. Uses
  65.     ResourceDefs,
  66.     ControlUtils,
  67.     Miscellany;
  68.  
  69. const
  70.     kRadioGroupGroup        = 1;
  71.     kStandardRadio        = 1;
  72. kGroupBox        = 2;
  73.     kGroupGroup        = 3;
  74.         kGroupRadio1        = 3;
  75.         kGroupRadio2        = 4;
  76.         kGroupRadio3        = 5;
  77. kGraphicBox        = 6;
  78.     kGraphicGroup        = 7;
  79.     kStopRadio        = 7;
  80.     kGoRadio        = 8;
  81. kBevelBox        = 9;
  82.     kBevelGroup        = 10;
  83.     kRadioButtonRadio        = 10;
  84.     kRadioButton2Radio        = 11;
  85. kTextBox        = 12;
  86.     kTextGroup        = 13;
  87.     kNameRadio        = 13;
  88.     kKindRadio        = 14;
  89.     kSizeRadio        = 15;
  90.  
  91.  
  92. {----------}
  93. Function NewModelessRadios: CModelessRadios;
  94. var
  95.     dialog:        CModelessRadios;
  96. begin
  97.     dialog := nil;
  98.     New (dialog);
  99.  
  100.     if dialog <> nil then begin
  101.         dialog.Initialize;
  102.     end;
  103.     NewModelessRadios := dialog;
  104. end;
  105.  
  106. {----------}
  107. Procedure CreateModelessRadios;
  108. var
  109.     dialog:        CModelessRadios;
  110.     data:        DModelessRadiosData;
  111. begin
  112.     dialog := NewModelessRadios;
  113.     data := NewDModelessRadiosData;
  114.  
  115.     dialog.MakeDialog (DLOG_ModelessRadios);
  116.     dialog.ConnectToData (data);
  117. end; {CreateModelessRadios}
  118.  
  119. {----------}
  120. Procedure ShowModelessRadios;
  121. begin
  122.     if sModelessRadiosPtr = nil then begin
  123.         CreateModelessRadios;
  124.     end;
  125.     if sModelessRadiosPtr <> nil then begin
  126.         SelectWindow (sModelessRadiosPtr);
  127.         ShowWindow (sModelessRadiosPtr);
  128.     end;
  129. end; {ShowModelessRadios}
  130.  
  131. {----------}
  132. Procedure CModelessRadios.FinishMake;
  133. var
  134.     errCode:        OSErr;
  135. begin
  136.     sModelessRadiosPtr := mDialog;
  137.  
  138.     mRadioGroupGroupHandle := GetControlItem (kRadioGroupGroup);
  139.     mStandardHandle := GetControlItem (kStandardRadio);
  140.     mGroupBoxHandle := GetControlItem (kGroupBox);
  141.     mGroupGroupHandle := GetControlItem (kGroupGroup);
  142.     mGroupRadio1Handle := GetControlItem (kGroupRadio1);
  143.     mGroupRadio2Handle := GetControlItem (kGroupRadio2);
  144.     mGroupRadio3Handle := GetControlItem (kGroupRadio3);
  145.     mGraphicBoxHandle := GetControlItem (kGraphicBox);
  146.     mGraphicGroupHandle := GetControlItem (kGraphicGroup);
  147.     mStopHandle := GetControlItem (kStopRadio);
  148.     mGoHandle := GetControlItem (kGoRadio);
  149.     mBevelBoxHandle := GetControlItem (kBevelBox);
  150.     mBevelGroupHandle := GetControlItem (kBevelGroup);
  151.     mRadioButtonHandle := GetControlItem (kRadioButtonRadio);
  152.     errCode := SetBevelButtonGraphicAlignment (mRadioButtonHandle, kControlBevelButtonAlignCenter, 0, 0);
  153.     mRadioButton2Handle := GetControlItem (kRadioButton2Radio);
  154.     errCode := SetBevelButtonGraphicAlignment (mRadioButton2Handle, kControlBevelButtonAlignCenter, 0, 0);
  155.     mTextBoxHandle := GetControlItem (kTextBox);
  156.     mTextGroupHandle := GetControlItem (kTextGroup);
  157.     mNameHandle := GetControlItem (kNameRadio);
  158.     mKindHandle := GetControlItem (kKindRadio);
  159.     mSizeHandle := GetControlItem (kSizeRadio);
  160. end;
  161.  
  162. {----------}
  163. Procedure CModelessRadios.ConnectToData (
  164.     inData:        AMSignaler); Override;
  165. begin
  166.     inherited ConnectToData (inData);
  167.     mData := DModelessRadiosData (inData);
  168.  
  169.     SetControlValue (mRadioGroupGroupHandle, mData.GetRadioGroup3);
  170.     SetControlValue (mGroupGroupHandle, mData.GetGroup3);
  171.     SetControlValue (mGraphicGroupHandle, mData.GetGraphic5);
  172.     SetControlValue (mBevelGroupHandle, mData.GetBevel3);
  173.     SetControlValue (mTextGroupHandle, mData.GetText3);
  174. end;
  175.  
  176. {----------}
  177. Procedure CModelessRadios.DoItem (
  178.     inItemHit:        SInt16);
  179. begin
  180.     case inItemHit of
  181.     kRadioGroupGroup:
  182.             mData.SetRadioGroup3 (GetControlValue (mRadioGroupGroupHandle));
  183.     kGroupGroup:
  184.             mData.SetGroup3 (GetControlValue (mGroupGroupHandle));
  185.     kGraphicGroup:
  186.             mData.SetGraphic5 (GetControlValue (mGraphicGroupHandle));
  187.     kBevelGroup:
  188.             mData.SetBevel3 (GetControlValue (mBevelGroupHandle));
  189.     kTextGroup:
  190.             mData.SetText3 (GetControlValue (mTextGroupHandle));
  191.  
  192.     end; {switch}
  193. end;
  194.  
  195. {----------}
  196. Procedure CModelessRadios.DataChanged (
  197.     inDataID:        longint); Override;
  198. begin
  199.     if inDataID = idRadioGroup3 then begin
  200.         SetControlValue (mRadioGroupGroupHandle, mData.GetRadioGroup3);
  201.     end;
  202.     if inDataID = idGroup3 then begin
  203.         SetControlValue (mGroupGroupHandle, mData.GetGroup3);
  204.     end;
  205.     if inDataID = idGraphic5 then begin
  206.         SetControlValue (mGraphicGroupHandle, mData.GetGraphic5);
  207.     end;
  208.     if inDataID = idBevel3 then begin
  209.         SetControlValue (mBevelGroupHandle, mData.GetBevel3);
  210.     end;
  211.     if inDataID = idText3 then begin
  212.         SetControlValue (mTextGroupHandle, mData.GetText3);
  213.     end;
  214. end;
  215.  
  216. End.
  217.